<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // promise API

        // 1. 定义三个promise对象
        let p1 = new Promise((reslove,reject)=>{
            // reslove('success');
            reject('fails');
        });

        // let p2 = Promise.resolve('ok');

        let p2 = Promise.reject('error');

        let p3 = new Promise((reslove,reject)=>{
            setTimeout(() => {
                reslove('成功');
            }, 500);
        });

        //all 所有
        // 2. 调用Promise.all([])，传入三个promise对象
        // 批量执行promise -  
        // 要求：
            // 只要有一个promise失败了。 返回的promise就是失败的。结果值就是失败的结果值
            // 如果所有的promise都成功了，返回的promise是成功的，结果值就是一个成功结果值的数组 
        let p4 = Promise.all([p1,p2,p3]);

        console.log(p4);

        p4.then(val=>{
            console.log("都成功了",val);
        },rea=>{
            console.log("有一个失败了",rea);
        });

        // 3. 切换promise状态，打印allP对象
            // 3.1 成功条件：全部为成功（状态：成功，结果值：[结果值集合]）
            // 3.2 失败条件：有一个失败（状态：失败，结果值：失败回调参数）

        // 4. 调用then、catch方法（定义成功、失败回调）
    </script>
</body>

</html>